[Frida 1] Frida의 이해, Frida 환경설정

[Frida 1] Frida의 이해, Frida 환경설정

Lecture
Security
태그
frida
mobile hacking
취약점
public
완성
Y
생성일
Mar 18, 2024 05:48 AM
LectureName
Mobile Hacking (Android - Frida )

1. Frida


1.1 Frida란? 🤪

주로 모바일 해킹에서 사용되는 프레임워크로, 프로세스를 모니터링하고 디버깅하는데 사용할 수 있는 도구입니다. 안드로이드 및 iOS 애플리케이션에서 실행 중인 코드에 접근하여 디버깅하고 수정할 수 있습니다. 이를 통해 앱의 동작을 조작하거나 보안 취약점을 발견하는 등의 목적으로 사용됩니다.
 

1.2 Frida의 주 기능

  1. 함수 후킹 (Hooking)
  • 후킹은 말 그대로 “낚아채다” 라는 느낌으로 이해하면 됩니다. 실행 중인 애플리케이션의 특정 함수에 연결하여 반환 값을 변경하거나, 함수를 재 작성 할 수 있습니다.
  • 애플리케이션 디버깅이 가능합니다.
  • 힙 메모리 내 객체 인스턴스 검색 및 사용이 가능합니다
  • 실시간 트래픽 스니핑, 암호 해독이 가능합니다.
 
  1. 트레이싱
  • 애플리케이션이 하고 있는 일을 추적하고, 기록할 수 있습니다.
  • 정규표현식으로 특정 문자열이 들어간 함수들을 추적하여 기록할 수 있습니다.
 
  1. 추출
  • 애플리케이션에서 명령어 레벨의 코드를 추적할 수 있습니다.
  • 실행 중인 애플리케이션이 적재되어 있는 메모리 내의 데이터를 검색하거나 추출할 수 있습니다.
 
 
 

2. Frida 환경설정


Frida는 클라이언트와 서버가 통신하는 형식이고, device 혹은 가상머신에 Frida-server이 설치되어 있어야 합니다.
 

2.1 클라이언트 설치

python venv 구축 / 아나콘다
Frida의 경우 상황에 따라 python의 버전을 맞추어서 설정해 주어야 하기 때문에, python 버전 관리 프로그램을 사용하여야 합니다. python에서 지원하는 venv 혹은 anaconda 를 사용하게 되면 버전 관리를 쉽게 할 수 있습니다.
 
➡️ 해당 글에서는 라이브러리 관리를 위해 venv를 사용하도록 하겠습니다.
  1. python3
python3 같은 경우에는, venv가 기본 모듈로 설치되어 있습니다.
# 원하는 곳에 폴더 생성 mkdir frida # 이동 및 가상환경 생성 cd ./frida python3 -m venv <가상환경 이름> # 활성화 cd ./<가상환경 이름> source ./bin/activate # 비활성화 deactivate
 
  1. python2
일단 python2는 지원이 중단된 상태기 때문에 PIP을 설치하는 것도 번거로운 편입니다. 일단 python2의 pip이 설치되어 있다는 가정 하에 진행하겠습니다.
 
➡️ python2가 정상적으로 깔려있고, pip이 정상적으로 설치되어 있다면 이렇게 나와야 합니다.
notion image
 
# 모듈 설치 pip install virtualenv # 가상환경 구축 virtualenv <가상환경이름> --python=python2.7 source <가상환경이름>/bin/activate # 가상환경 비활성화 deactivate
 
💡
virtualenv의 경우 Unicodeerror가 발생할 수 있지만, 경로가 한글 이여서 발생하는게 대부분입니다.
 
 
클라이언트 다운로드
# python3에서 진행, 가상환경 사용 # /bin/bash # 설치 pip install frida-tools # 버전확인 !필수! 필자의 경우 16.2.1 frida --version
 
 

2.2 Frida-server 설치 (단말기)

주의사항
Frida-server을 설치할때 주의사항이 존재합니다.
  1. 단말기 cpu 아키텍쳐와 FridaServer의 지원 아키텍쳐가 일치하는지 확인합니다. (adb shell → getprop ro.product.cpu.abi)
  1. frida clientfrida server의 버전이 일치하는지 확인합니다.
 
설치 및 실행
1. 다운로드
💡
자신의 환경에 맞추어서 설치하여야 합니다.
notion image
  • version : 16.2.1
  • arch : amd64
 
  1. 설치
# adb push <압축 푼 파일> /data/local/tmp adb push frida-server-16.2.1-android-arm64 /data/local/tmp # 권한 확인 adb shell ls -l /data/local/tmp/<fridaserver 파일> -> 실행 권한 (x) 가 있을경우 ok 없다면 부여 chmod +x /data/local/tmp/<fridaserver 파일>
 
  1. 실행
# device shell /data/local/tmp/frida-server
 
 
 

3. Frida실행 확인


3.1 Frida-server 실행

# 디바이스에서 실행 /data/local/tmp/frida-server
 
 

3.2 USB 연결 확인

  1. 모바일 휴대폰 or 애뮬레이터 연결 확인
  1. 휴대폰의 경우, USB를 이용한 디버깅 설정
  1. adb devices 로 연결된 디바이스 확인
 

3.3 Frida-client 실행

# frida-tools가 설치된 환경으로 진행 # USB로 연결되어 있는경우 -U 옵션 진 frida-ps -U
  • 프로세스 목록이 뜬다면 성공
 
 
 

4. ETC


  • Frida Lint (프리다 코드 자동완성)